Reening Speciications to Logic Programs
نویسندگان
چکیده
The reenement calculus provides a framework for the stepwise development of imperative programs from speciications. In this paper we study a reenement calculus for deriving logic programs. Dealing with logic programs rather than imperative programs has the dual advantages that, due to the expressive power of logic programs, the nal program is closer to the original speciication, and each reenement step can achieve more. Together these reduce the overall number of derivation steps. We present a logic programming language extended with speciication constructs (including general predicates, assertions, and types and invariants) to form a wide-spectrum language. General predicates allow non-executable properties to be included in speciications. Assertions, types and invariants make assumptions about the intended inputs of a procedure explicit, and can be used during reenement to optimize the constructed logic program. We provide a semantics for the extended logic programming language and derive a set of reenement laws. Finally we apply these to an example derivation.
منابع مشابه
Reening Logic Programs Using Types and Invariants Reening Logic Programs Using Types and Invariants
The logic programming reenement calculus provides a method for transforming speciications to executable code, maintaining the correctness of the code with respect to its speciication. In this paper we show how types, and their generalisation, invariants, which allow conditions that relate several variables , can be handled in the logic programming reenement calculus. Types and invariants provid...
متن کاملDevelopment of Communication Protocols by Composing and Reening Temporal Speciications
This paper presents a modular temporal logic for the speciication and veriica-tion of communication protocols. Based on this setting we present a development method that supports stepwise reenement of distributed systems. An inference rule for composing temporal speciications as well as proof rules for the veriication of reenements are given. We illustrate the application of our method by reeni...
متن کاملData Reening Logic Programs
A reenement calculus provides a method for transforming speciications to executable code, maintaining the correctness of the code with respect to its speciication. One aspect of reenement is transforming the representation of data in a speciication. This could be performed for eeciency reasons, or to change an abstract speciication type into a data type that is in the target implementation lang...
متن کاملAn Incompleteness Result for Deductive Synthesis of Logic Programs
We formalise the derivation of logic programs from their speciications by deductive synthesis, and introduce the notion of uniform equivalence between logical systems. This enables us to present an incompleteness result for deductive synthesis of logic programs from rst-order logic speciications.
متن کاملForms of Logic Speci cations : A Preliminary Study ?
There is no universal agreement on exactly what form a spec-iication should take, what part it should play in synthesis, and what its precise relationship with the speciied program should be. In logic programming , the role of speciication is all the more unclear since logic programs are often used as executable speciications. In this paper we take the view that speciications should be set in t...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1996